# 转义字符 \ 可以将普通字符特殊化 特殊字符普通化
# \n 换行符 \t 制表符 \r 回车符

# 字符串格式化输出

# 方式1 占位法
name = "小李"
age = 18
height = 180
print("我的名字叫%s，我的年龄是%d，我的身高是%d" % (name, age, height))

# 方式二： 3.6版本后特有的
print(f"我的名字是{name},我的年龄是{age},我的身高为{height}cm")

""" 字符串序列操作 """
# (1) 索引操作： 字符串[索引] 查询单个字符的值
s = "hello"
print(s[0])  # h
print(s[-1])  # o

# (2) 切片操作：字符串[开始索引:结束索引]  前闭后开区间
print(s[0:3])  # hel
print(s[:3])  # hel 缺省状态，在前面就取到第一个数据
print(s[0:])  # hello  缺省，在后面就取到最后一位
print(s[-10:-8])  # he 负索引也可以
# (2.1) 补偿参数： 字符串[开始索引:结束索引:step = 1] 最后一个参数可以确定切的间隔，切的方向
print("s[0:5:-1] ::: ", s[0:5:-1])  # 空值
print("s[4:1:-1] ::: ", s[4:1:-1])  # oll
print(s[::-1])  # 将字符串反转过来 (前后都缺省，补偿参数反向)

# (3) (拼接操作)
s1 = "hello"
s2 = "yuan"
print(s1 + s2)
print("*" * 100)

# (4) 针对容器类型，计算字符串长度：内置函数len()
s4 = "i am 哈"
print(len(s4))  # 一个汉字表示3个字节

# (5) 针对容器类型，判断某个成员是否存在：内置函数in
s5 = "li shuai is happy"
print("li" in s5)  # s5中有 li True
print("ai i" in s5)  # 在里面 True
